package 时间工具;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.SimpleFormatter;

/**
 * @author chihb
 * @create-time 2024/6/29 17:40
 * @description
 */
public class Test {
    public static void main(String[] args) throws ParseException {
        Date d=new Date();
        System.out.println(d);

        //拿到时间毫秒值
        long time=d.getTime();
        System.out.println(time);

        //把时间毫秒值转换成日期对象
        time+=2*1000;
        Date d2=new Date(time);
        System.out.println(d2);

        //直接把日期对象的时间通过setTime的方法进行修改
        Date d3=new Date();
        d3.setTime(time);
        System.out.println(d3);
        System.out.println("====================================");

        //SimpleDateFormat的使用   将日期时间或毫秒值转成字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE a");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        System.out.println(sdf.format(d));
        System.out.println(sdf2.format(d));
        //将字符串转换成日期时间
        String s="2022-02-01 12:11:10";
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf3.parse(s));
        //Calendar代表的就是电脑右下脚的日历  抽象类
        Calendar now=Calendar.getInstance();
        System.out.println(now.get(Calendar.YEAR));
        //代替Calendar
        //localDate 年月日
        //localTime 时分秒
        //localDateTime 年月日时分秒
        //ZoneId 时区
        //ZonedDateTime 带时区的时间

        //代替SimpleDateFormat
        //DateTimeFormatter：用于时间格式化和解析

        //代替Date
        //Instant  时间戳/时间线

        //Period：时间间隔（年月日）
        //Duration 时间间隔（时分秒纳秒）
        //Period对象或Duration对象，然后between
    }

}
